import TcVod from "vod-js-sdk-v6";

function getSignature(axios, params) {
  return () => {    
    return axios
      .get("/uploadSignature/signature", { params })
      .then(function(response) {
        return response.signature;
      });
  };
}

// 通过 import 引入的话，new TcVod(opts) 即可
// new TcVod.default(opts) 是 script 引入 的用法
function upload(axios, params, file, onprogress, onsuccess) {
  const tcVod = new TcVod({
    getSignature: getSignature(axios, params), // 前文中所述的获取上传签名的函数
  });

  const uploader = tcVod.upload({
    mediaFile: file, // 媒体文件（视频或音频或图片），类型为 File
  });
  uploader.on("media_progress", function(info) {
    console.log(info.percent); // 进度
    onprogress(info);
  });

  // 回调结果说明
  // type doneResult = {
  //   fileId: string,
  //   video: {
  //     url: string
  //   },
  //   cover: {
  //     url: string
  //   }
  // }
  uploader
    .done()
    .then(function(doneResult) {
      // deal with doneResult
      onsuccess(doneResult);
    })
    .catch(function(err) {
      // deal with error
    });

  return tcVod;
}

export { upload };
